﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HerGoS.Administration.Entities;
using HerGoS.Administration.Engine;
using HerGoS.ControlsUI;

namespace HerGoS.WebUI.Administracion.Puestos
{
    public partial class Puestos_ABM : PageBase
    {

        #region Propiedades

        public Puesto Puesto
        {
            get
            {
                if (ViewState["Puesto"] != null)
                    return (Puesto)ViewState["Puesto"];
                return null;
            }
            set
            {
                ViewState["Puesto"] = value;
            }

        }

        #endregion


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Request.QueryString["id"] == null)
                {
                    Puesto = new Puesto();
                }
                else
                {
                    var Id = Convert.ToInt32(Request.QueryString["id"]);
                    Puesto = GestorPuesto.Obtener(Id);
                    this.txtCodigo.Text = Puesto.Codigo;
                    this.txtDescripcion.Text = Puesto.Descripcion;
                    this.txtJerarquia.Text = this.Puesto.Jerarquia.ToString();
                    
                }
                Initialize();
            }


        }

        void Initialize()
        {
            this.btnGuardar.Settings(new ButtonExtText());
            this.btnCerrar.Settings(new ButtonExtText());
            LoadAutoria(Puesto);
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
          
            if (Puesto.Persistencia == Interfaces.EstadoPersistencia.UPDATE)
            {                
                if (Puesto.Codigo != this.txtCodigo.Text)
                {
                    var puestoExist = GestorPuesto.Consultar(this.txtCodigo.Text);
                    if (puestoExist != null)
                    {
                        var script = @"$(function(){{parent.MensajePuestoDuplicado('{0}');}});";
                        script = string.Format(script, puestoExist.Codigo);
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "closedialog", script, true);
                        return;
                    }

                }


            }


            Puesto.Codigo = this.txtCodigo.Text;
            Puesto.Descripcion = this.txtDescripcion.Text;
            Puesto.Jerarquia = this.txtJerarquia.Text.ToInteger();

            if (Puesto.Persistencia == Interfaces.EstadoPersistencia.INSERT)
            {
                var puestoExist = GestorPuesto.Consultar(Puesto.Codigo);
                if (puestoExist != null)
                {
                    var script = @"$(function(){{parent.MensajePuestoDuplicado('{0}');}});";
                    script = string.Format(script, puestoExist.Codigo);
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "closedialog", script, true);
                    return;
                }
            }
           
            GestorPuesto.Guardar(Puesto);

            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "closedialog", "parent.IntervaloCerrarPopup();", true);

        }


        protected void btnCerrar_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "closedialog", "parent.CerrarPopup();", true);
        }

      

    }
}